package cn.com.cpic.insurance.rulecheck.core.rule;

import cn.com.cpic.insurance.rulecheck.core.ModifiableSet;
import cn.com.cpic.insurance.rulecheck.core.Tagable;
import cn.com.cpic.insurance.rulecheck.core.Tokenable;
import cn.com.cpic.insurance.rulecheck.core.condition.ConditionGroup;

/**
 * 规则组
 * 
 * @author 代波
 * @since 2011-8-13
 */
public interface RuleGroup extends Tokenable<String>, Tagable {
	/**
	 * 获得规则组生效需要校验的条件组
	 * 
	 * @return 条件组
	 */
	ConditionGroup getCondition();

	/**
	 * 获得规则组中包含的规则集合
	 * 
	 * @return 规则集合
	 */
	ModifiableSet<Rule> getRuleSet();

	/**
	 * 获得规则组的可读名称
	 * 
	 * @return 规则组的可读名称
	 */
	String getName();

	/**
	 * 获得规则组的可读描述信息
	 * 
	 * @return 规则组的可读描述信息
	 */
	String getDesc();
}
